package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiPriceConfig;
import com.minimalist.common.entity.lindi.vo.priceconfig.LindiPriceConfigQueryVO;
import com.minimalist.common.entity.lindi.vo.priceconfig.LindiPriceConfigVO;
import com.mybatisflex.core.service.IService;

/**
 * 林地指标交易平台_价格配置表 服务层。
 *
 * @author 11987
 * @since 2025-07-09
 */
public interface LindiPriceConfigService extends IService<LindiPriceConfig> {

    /**
     * 新增价格配置
     *
     * @param priceConfigVO 价格配置
     */
    void addPriceConfig(LindiPriceConfigVO priceConfigVO);

    /**
     * 根据价格配置ID删除价格配置
     *
     * @param priceConfigId 价格配置ID
     */
    void deletePriceConfigByPriceConfigId(Long priceConfigId);

    /**
     * 根据价格配置ID更新价格配置
     *
     * @param priceConfigVO 价格配置
     */
    void updatePriceConfigByPriceConfigId(LindiPriceConfigVO priceConfigVO);

    /**
     * 分页查询价格配置列表
     *
     * @param queryVO 查询条件
     * @return 分页结果
     */
    PageResp<LindiPriceConfigVO> getPagePriceConfigList(LindiPriceConfigQueryVO queryVO);

    /**
     * 根据价格配置ID查询价格配置
     *
     * @param priceConfigId 价格配置ID
     * @return 价格配置
     */
    LindiPriceConfigVO getPriceConfigByPriceConfigId(Long priceConfigId);

    /**
     * 根据价格类型查询指定时间有效的价格配置
     *
     * @param priceType 价格类型
     * @param queryTime 查询时间
     * @return 价格配置
     */
    LindiPriceConfig getValidPriceConfigByType(String priceType, java.time.LocalDateTime queryTime);

}
